package ch05;

/**
 * 生成两个具体的表达式子节点
 * AddNode代表 + 的节点
 */

/**
 * 这种其实是模式十二：内嵌遍历器（异形树专用）
 * 对于异形树来说，节点类中就定义了遍历的方法，既执行遍历时所需的操作，又递归遍历其子节点
 * 但是这种模式最简单，最不灵活（想想一下遍历树的代码可能分散在多达上百个类（具体的树节点类）定义文件中）
 */

public class AddNode extends ExprNode{
    ExprNode left, right;       //不规则的子节点，有节点自定义的名字
   public void walk() {
       // 《前序操作》
       left.walk();         // 分别遍历左子树和右子树
       // 《中序操作》
       right.walk();
       // 《后序操作》
   }
}
